A data center typically includes a number of host devices (e.g., computer systems) that are usually leased to outside entities (clients) such as a business. Clients use the leased devices for any of a variety of applications, such as electronic commerce (“e-commerce”) applications that can be accessed by a client's customers over the Internet, for example.
The data center operator generally has responsibility for operating and maintaining the host devices, and the host devices are usually provisioned with applications by an application vendor. This arrangement thus provides a convenient means for businesses and the like to have an Internet presence without the burden of operating, maintaining and provisioning the host devices.
In one implementation, the application used by a host device is stored on the local storage of the device. In another implementation, the application used by a host device is stored on a central storage system. For simplicity of discussion, the case in which applications are stored on the central storage system provides the context for the description below. However, the discussion below can be readily extrapolated to the implementation in which applications are stored in local storage.
The host devices in the data center are communicatively coupled to the central storage system over a high bandwidth network such as a fibre channel network. The central storage system provides storage resources that can be accessed by the host devices in the data center. The fibre channel network provides the high bandwidth needed to transfer large amounts of data and information between the host devices and the central storage system.
Each host device in the data center is allocated a portion of the storage resources provided by the central storage system. While the host devices share the storage resources of the central storage system, each device is restricted to its allocated portion of storage. From the viewpoint of a host device, each device believes it is using local storage, when in fact it is using storage located in the central storage system.
For an application vendor, setting up an application on behalf of a client can be a relatively time-consuming and complex task. For example, to set up an application for a particular client, the application has to be configured(customized) for the particular operating system used by the client, for any unique operating system parameters, and for any other client-specific parameters and attributes. The configured application is then copied into each of the storage locations associated with the client's host devices that will use the application. Next, the copies in these storage locations may each need to be further customized with device-specific parameters and attributes such as a device's IP (Internet Protocol) address.
To facilitate the process described above, an image of the application as it exists at various points in the process is stored as a “golden image.” That is, a golden image of the unmodified application, not including any changes made to the application to incorporate client-specific parameters and attributes, can be stored. Similarly, a golden image of the application including client-specific parameters and attributes, but not including any changes made to the application to incorporate device-specific parameters and attributes, can be stored.
Then, to set up an application, the appropriate golden image is selected and copied, and the copy of the golden image is used as the basis for any subsequent changes. For example, if an application is needed for a new client, then the golden image for the unmodified application is selected, a copy is made, and the copy is modified as needed for the client. If a client adds a new host device, the golden image of the client-specific application is selected, a copy is made, and the copy is modified as needed for the device. As a result, the time and effort needed to configure an application for a particular client and/or device can be reduced by building on previously completed and saved work.
A problem with the process described above is that the golden images are generally large in size and so copying them can take a relatively long time. Each golden image may be several gigabytes or more in size, and an application may actually be made up of multiple golden images. Thus, it can take up to several hours to copy the golden images needed to provide an application to a client or to a host device added by a client.
Clients often have a choice of which vendor they want to provision their host devices with applications. A vendor that can provide an application to a client or that can provision additional client devices in the shortest amount of time will have a competitive advantage over other vendors.
Currently, vendors attempt to reduce provisioning time by increasing block sizes to speed up copying, by using faster networks to decrease transfer time, and the like. However, with these factors being equal, each vendor remains no faster that its competitors.
Accordingly, what is needed is a method and/or system that can reduce the time needed to provision a device with an application. The present invention provides a novel solution to the above need.